home *** CD-ROM | disk | FTP | other *** search
/ Hackers Matrix / Hacker's Matrix (nCite Software) (2003).iso / Data / hack0434.exe / elitemp3b.mrc < prev    next >
Text File  |  1999-11-18  |  22KB  |  374 lines

  1. ; This script is designed for easy playing of MP3s in any channel.
  2. ;  Comments about this script can be sent to techster@eliteorbit.com.
  3. ; ---------------------------------------------------------------------------------------------------------------------
  4. ; This script is Copyright (C) 1999 EliteScripters.  ALL RIGHTS RESERVED.
  5. ; You may freely use and offer this script as long as you give Elite Scripters
  6. ; the credit they deserve.  You may NOT sell this code without the express
  7. ; written permission of the founders of EliteScripters (Techster, Drizzt`).
  8. ; ---------------------------------------------------------------------------------------------------------------------
  9. ; Credits:
  10. ;    Scripter/Programmer:   Techster   (techster@eliteorbit.com)
  11. ;    BETA Testers:              Angel, CJ, Drizzt`, PeTrArChY
  12. ; ---------------------------------------------------------------------------------------------------------------------
  13. ; Comments:
  14. ; This is the release of Elite MP3 v1.3.  If you have any ideas, comments,
  15. ; of complaints about this script.  Tell me or send them to techster@eliteorbit.com
  16. ; ---------------------------------------------------------------------------------------------------------------------
  17. ; Visit the EliteScripters homepage at http://www.eliteorbit.com/scripters/
  18. ; or on IRC at irc.eliteorbit.com Channel: #EliteScripters.
  19.  
  20. alias -l elite.delsetting { remini $shortfn($mircdir) $+ elitesys\elitemp3.dat $1 $2 }
  21.  
  22. alias -l elite.getsetting { return $readini $shortfn($mircdir) $+ elitesys\elitemp3.dat $1 $2 }
  23.  
  24. alias -l elite.setsetting { writeini $shortfn($mircdir) $+ elitesys\elitemp3.dat $1 $2 $3 }
  25.  
  26. alias -l elitesys.version { return v1.3 }
  27.  
  28. alias -l .elite.mp3.sendlist {
  29.   if $show == $true {
  30.     inc -c %tmp.elite.mp3.list.time
  31.     echo $colour(info) -es Elite MP3: Generating List for $1 $+ .
  32.     set %elite.mp3.list.nick $1
  33.     window -hls @EO.MP3List
  34.   }
  35.   inc %tmp.elite.mp3.list.num
  36.   set %tmp.elite.mp3.list.file $findfile($elite.getsetting(Paths,Base),*.mp3,%tmp.elite.mp3.list.num)
  37.   if %tmp.elite.mp3.list.file != $null {
  38.     set %tmp.elite.mp3.list.size $round($calc($file(%tmp.elite.mp3.list.file).size / 1048576),2)
  39.     set %tmp.elite.mp3.list.qual $strip($elitesys.stereo.mono(%tmp.elite.mp3.list.file))
  40.     set %tmp.elite.mp3.list.qual $remove(%tmp.elite.mp3.list.qual,$chr(40),$chr(41),$chr(32))
  41.     aline @EO.MP3List ! $+ $me $nopath(%tmp.elite.mp3.list.file) ( $+ %tmp.elite.mp3.list.size $+ megs $strip($elitesys.bitrate(%tmp.elite.mp3.list.file)) $+ kbps %tmp.elite.mp3.list.qual $+ )
  42.     inc %tmp.elite.mp3.list.total
  43.     inc %tmp.elite.mp3.list.tsize %tmp.elite.mp3.list.size
  44.     .timer -m 1 1 .elite.mp3.sendlist
  45.   }
  46.   else {
  47.     set %tmp.elite.mp3.list.txt $shortfn($mircdir) $+ elitesys\ $+ $me $+ mp3.txt
  48.     if $exists(%tmp.elite.mp3.list.txt) == $true { .remove %tmp.elite.mp3.list.txt }
  49.     write %tmp.elite.mp3.list.txt >> $me $+ 's list of %tmp.elite.mp3.list.total MP3s. %tmp.elite.mp3.list.tsize MBs in all.
  50.     write %tmp.elite.mp3.list.txt >> To get any of these files, just copy & paste into the channel.
  51.     write %tmp.elite.mp3.list.txt $str(-,90)
  52.     savebuf -a @EO.MP3List %tmp.elite.mp3.list.txt
  53.     write %tmp.elite.mp3.list.txt $str(-,90)
  54.     write %tmp.elite.mp3.list.txt This file was dynamically created on $date(mmmm ddoo) at $time(h:nn tt) for %elite.mp3.list.nick $+ .
  55.     write %tmp.elite.mp3.list.txt Elite MP3 $strip($elitesys.version) $+ . Copyright (c) 1999 Elite Scripters.  All Rights Reserved.
  56.     write %tmp.elite.mp3.list.txt WebSite: http://www.eliteorbit.com/scripters/ IRC: orbit.eliteorbit.net #EliteScripters
  57.     window -c @EO.MP3List
  58.     dcc send %elite.mp3.list.nick %tmp.elite.mp3.list.txt
  59.     echo $colour(info) -es Elite MP3: List Generated for %tmp.elite.mp3.list.nick in $duration(%tmp.elite.mp3.list.time) $+ .
  60.     unset %tmp.elite.mp3.list.* | unset %tmp.elite.mp3.bitrate
  61.   }
  62. }
  63.  
  64. alias -l elite.mp3.sendnext {
  65.   unset %sys.elite.mp3.list
  66.   if $numtok(%sys.elite.mp3.list.next,32) >= 1 {
  67.     set %tmp.elite.mp3.list.next $gettok(%sys.elite.mp3.list.next,1,32)
  68.     set %sys.elite.mp3.list.next $remtok(%sys.elite.mp3.list.next,%tmp.elite.mp3.list.next,1,32)
  69.     set %sys.elite.mp3.list $true
  70.     if $numtok(%sys.elite.mp3.list.next,32) == $null { unset %sys.elite.mp3.list.next }
  71.     .timer 1 0 elite.mp3.sendlist %tmp.elite.mp3.list.next
  72.   }
  73. }
  74.  
  75. alias -l elite.mp3.check.cps {
  76.   if $send(0) == 0 { .timerEliteMP3CPS off | halt }
  77.   :loop
  78.   inc %tmp.elite.mp3.check.cps
  79.   if $right($send(%tmp.elite.mp3.check.cps).file,4) == .mp3 {
  80.     set %tmp.elite.mp3.check.cps.now $send(%tmp.elite.mp3.check.cps).cps
  81.     if %tmp.elite.mp3.check.cps.now < $elite.getsetting(Settings,MinCPS) $&
  82.     && $elite.getsetting(Settings,CancelDCC) == $true $&
  83.     && %tmp.elite.mp3.check.cps.now > 0 $&
  84.     && %tmp.elite.mp3.check.cps.now != n/a {
  85.       .notice $send(%tmp.elite.mp3.check.cps) MP3 DCC Send has been cancelled due to the transfer rate falling below $elite.getsetting(Settings,MinCPS) cps.
  86.       elite.setsetting Current Sends $calc($elite.getsetting(Current,Sends) - 1) | elite.setsetting History Failed $calc($elite.getsetting(History,Failed) + 1)
  87.       .timer 1 3 amsg [MP3 DCC SEND CANCELLED] with $nick $+ . I have $!elite.getsetting(Current,Sends) of $!elite.getsetting(Settings,MaxSends) slots in use.  Type 4@ $+ $me $+ -stats for my current MP3 stats.
  88.       .timer 1 4 close -s $send(%tmp.elite.mp3.check.cps)
  89.     }
  90.     if %tmp.elite.mp3.check.cps.now > $elite.getsetting(History,CPS) || $elite.getsetting(History,CPS) == n/a {
  91.       elite.setsetting History CPS %tmp.elite.mp3.check.cps.now
  92.       elite.setsetting History Nick $send(%tmp.elite.mp3.check.cps)
  93.     }
  94.   }
  95.   if %tmp.elite.mp3.check.cps < $send(0) { goto loop }
  96.   unset %tmp.elite.mp3.check.cps*
  97. }
  98.  
  99. alias elite.mp3.get {
  100.   elite.setsetting Played Requested $true
  101.   msg $elite.getsetting(Played,Channel) ! [ $+ [ $elite.getsetting(Played,Nick) ] ] $elite.getsetting(Played,File) Elite MP3 Retreiver $elitesys.version
  102. }
  103.  
  104. alias elitesys.stereo.mono {
  105.   set %tmp.elite.mp3.bitrate $read -l1 $1-
  106.   if $mid(%tmp.elite.mp3.bitrate,3,1) == $null { return Quality : N/A }
  107.   if $pos(%tmp.elite.mp3.bitrate,$chr(255),1) == 1 {
  108.     if (($chr(255) $+ $chr(250) isin %tmp.elite.mp3.bitrate) || ($chr(255) $+ $chr(251) isin %tmp.elite.mp3.bitrate) || ($chr(255) $+ $chr(253) isin %tmp.elite.mp3.bitrate) || ($chr(255) $+ $chr(227) isin %tmp.elite.mp3.bitrate) || ($chr(255) $+ $chr(242) isin %tmp.elite.mp3.bitrate) || ($chr(255) $+ $chr(243) isin %tmp.elite.mp3.bitrate) || ($chr(255) $+ $chr(253) isin %tmp.elite.mp3.bitrate)) {
  109.       if $asc($mid(%tmp.elite.mp3.bitrate,4,1)) isnum 192-196 { return 00,01-mono- }
  110.       else { return 08,01(15(00stereo15)08) }
  111.     }
  112.   }
  113.   return 08,01(15(00stereo15)08)
  114. }
  115.  
  116. alias elitesys.music.length {
  117.   set %tmp.elite.mp3.length.1 $int($calc($1 / 60 ))
  118.   set %tmp.elite.mp3.length.2 $int($calc($1 - (( [ $int($calc($1 / 60 )) ] ) *  60 )))
  119.   if %tmp.elite.mp3.length.2 < 10 { set %tmp.elite.mp3.length.2 0 $+ %tmp.elite.mp3.length.2 }
  120.   return 13 $+ %tmp.elite.mp3.length.1 $+ : $+ %tmp.elite.mp3.length.2 $+ 
  121. }
  122.  
  123. alias elitesys.bitrate {
  124.   set %tmp.elite.mp3.bitrate $read -l1 $1- 
  125.   if ($mid(%tmp.elite.mp3.bitrate,3,1) == $null) { return N/A }
  126.   if ($left(%tmp.elite.mp3.bitrate,1) == $chr(255)) {
  127.     if (($chr(255) $+ $chr(250) isin %tmp.elite.mp3.bitrate) || ($chr(255) $+ $chr(251) isin %tmp.elite.mp3.bitrate)) { goto BR2 }
  128.     if ($chr(255) $+ $chr(242) isin %tmp.elite.mp3.bitrate) {
  129.       set %tmp.elite.mp3.bitrate $asc($mid(%tmp.elite.mp3.bitrate,2,1)) 
  130.       set %tmp.elite.mp3.bitrate $calc((%tmp.elite.mp3.bitrate - (%tmp.elite.mp3.bitrate % 32)) / 2)
  131.       return %tmp.elite.mp3.bitrate
  132.     }
  133.     else { goto BR1 }
  134.   }
  135.   elseif (riff isin %tmp.elite.mp3.bitrate) { return 128 }
  136.   elseif (http isin %tmp.elite.mp3.bitrate) { return 128 }
  137.   elseif (mime-version isin %tmp.elite.mp3.bitrate) { return 128 }
  138.   :BR1
  139.   if ($chr(255) $+ $chr(253) isin %tmp.elite.mp3.bitrate) {
  140.     set %tmp.elite.mp3.bitrate $asc($mid(%tmp.elite.mp3.bitrate,3,1))
  141.     set %tmp.elite.mp3.bitrate $calc((%tmp.elite.mp3.bitrate - (%tmp.elite.mp3.bitrate % 16)) / 1)
  142.     return %tmp.elite.mp3.bitrate
  143.   }
  144.   if ($chr(16) $+ $chr(49) isin %tmp.elite.mp3.bitrate) {
  145.     return 128
  146.   }
  147.   if ($Mid(%tmp.elite.mp3.bitrate,2,1) != $chr(251)) {
  148.     set %tmp.elite.mp3.bitrate $asc($mid(%tmp.elite.mp3.bitrate,3,1))
  149.     set %tmp.elite.mp3.bitrate $calc((%tmp.elite.mp3.bitrate - (%tmp.elite.mp3.bitrate % 16)) / 2)
  150.     return %tmp.elite.mp3.bitrate
  151.   }
  152.   :BR2
  153.   if ($Mid(%tmp.elite.mp3.bitrate,3,1) == $null) { return N/A }
  154.   set %tmp.elite.mp3.bitrate $asc($Mid(%tmp.elite.mp3.bitrate,3,1))
  155.   if (%tmp.elite.mp3.bitrate == $null) { return 128 }
  156.   set %tmp.elite.mp3.bitrate $calc((%tmp.elite.mp3.bitrate - (%tmp.elite.mp3.bitrate % 16)) / 16)
  157.   :cal
  158.   if (%tmp.elite.mp3.bitrate == 1) { return 32 } |  elseif (%tmp.elite.mp3.bitrate == 2) { return 40 }
  159.   elseif (%tmp.elite.mp3.bitrate == 3) { return 48 } | elseif (%tmp.elite.mp3.bitrate == 4) { return 56 }
  160.   elseif (%tmp.elite.mp3.bitrate == 5) { return 64 } | elseif (%tmp.elite.mp3.bitrate == 6) { return 80 }
  161.   elseif (%tmp.elite.mp3.bitrate == 7) { return 96 } | elseif (%tmp.elite.mp3.bitrate == 8) { return 112 }
  162.   elseif (%tmp.elite.mp3.bitrate == 9) { return 128 } | elseif (%tmp.elite.mp3.bitrate == 10) { return 160 }
  163.   elseif (%tmp.elite.mp3.bitrate == 11) { return 192 } | elseif (%tmp.elite.mp3.bitrate == 12) { return 224 }
  164.   elseif (%tmp.elite.mp3.bitrate == 13) { return 256 } | elseif (%tmp.elite.mp3.bitrate == 14) { return 320 }
  165.   return 128
  166. }
  167.  
  168. alias -l elite.mp3.unignore {
  169.   if $numtok(%elite.mp3.ignore. [ $+ [ $1 ] ] ,32) > 1 {
  170.     set %elite.mp3.ignore. [ $+ [ $1 ] ] $remtok(%elite.mp3.ignore. [ $+ [ $1 ] ] ,$2,1,32)
  171.   }
  172.   else { unset %elite.mp3.ignore. [ $+ [ $1 ] ] }
  173. }
  174.  
  175. on *:TEXT:@*list:*: {
  176.   if $1 == @ $+ $me $+ list {
  177.     if $istok(%elite.mp3.ignore.list,$nick,32) == $true {
  178.       echo $colour(info) -es Elite MP3: Ignoring List Request From $nick $+ .
  179.       .notice $nick You are allowed only 1 list every 60 seconds.
  180.     }
  181.     else {
  182.       set %elite.mp3.ignore.list $addtok(%elite.mp3.ignore.list,$nick,32)
  183.       .timer 1 60 elite.mp3.unignore list $nick
  184.       if %sys.elite.mp3.list {
  185.         .notice $nick Your list is being generated, however someone else is currently getting a list.
  186.         set %sys.elite.mp3.list.next $addtok(%sys.elite.mp3.list.next,$nick,32)
  187.       }
  188.       else {
  189.         set %sys.elite.mp3.list $true
  190.         .notice $nick Your list is being generated. It will be ready in a few seconds.
  191.         elite.mp3.sendlist $nick
  192.       }
  193.     }
  194.   }
  195. }
  196.  
  197. on *:TEXT:@FIND*:*: {
  198.   if $elite.getsetting(Settings,@find) == $true {
  199.     if $istok(%elite.mp3.ignore.find,$nick,32) == $true {
  200.       echo $colour(info) -es Elite MP3: Ignoring @FIND MP3 Request From $nick $+ .
  201.     }
  202.     else {
  203.       set %elite.mp3.ignore.find $addtok(%elite.mp3.ignore.find,$nick,32)
  204.       if $right($2-,4) == .mp3 { set %tmp.elite.mp3.find.file * $+ $left($2-,$calc($len($2-) - 4)) $+ *.mp3 }
  205.       else { set %tmp.elite.mp3.find.file * $+ $2- $+ *.mp3 }
  206.       set %tmp.elite.mp3.find.file $replace(%tmp.elite.mp3.find.file,$chr(32),*)
  207.       :find.loop
  208.       inc %tmp.elite.mp3.find.file.num
  209.       set %tmp.elite.mp3.find.file. [ $+ [ %tmp.elite.mp3.find.file.num ] ] $findfile($elite.getsetting(Paths,Base),%tmp.elite.mp3.find.file,%tmp.elite.mp3.find.file.num)
  210.       if %tmp.elite.mp3.find.file. [ $+ [ %tmp.elite.mp3.find.file.num ] ] != $null {
  211.         if %tmp.elite.mp3.find.file.num <= 10 { goto find.loop }
  212.         .notice $nick [MP3 @FIND] Too many results. Type: @ $+ $me $+ list to get my MP3 list.
  213.         goto find.end
  214.       }
  215.       if %tmp.elite.mp3.find.file.num == 1 { goto find.end }
  216.       if %tmp.elite.mp3.find.file.num == 2 { .msg $nick [MP3 @FIND RESULT] I have 1 match for $2 $+ . Type: @ $+ $me $+ -stats for my current MP3 Stats. }
  217.       else { .msg $nick [MP3 @FIND RESULT] I have $calc(%tmp.elite.mp3.find.file.num - 1) matches for $2- $+ . Type: @ $+ $me $+ -stats for my current MP3 Stats. }
  218.       :msg.loop
  219.       dec %tmp.elite.mp3.find.file.num
  220.       set %tmp.elite.mp3.find.file %tmp.elite.mp3.find.file. [ $+ [ %tmp.elite.mp3.find.file.num ] ]
  221.       set %tmp.elite.mp3.find.size $round($calc($lof($shortfn(%tmp.elite.mp3.find.file)) / 1048576),2) $+ mb
  222.       set %tmp.elite.mp3.find.length $elitesys.music.length($calc($lof($shortfn(%tmp.elite.mp3.find.file)) / 16000 ))
  223.       set %tmp.elite.mp3.find.bitrate $elitesys.bitrate($shortfn(%tmp.elite.mp3.find.file)) $+ kbps
  224.       set %tmp.elite.mp3.find.stereo-mono $elitesys.stereo.mono($shortfn(%tmp.elite.mp3.find.file))
  225.       set %tmp.elite.mp3.find.stereo-mono $remove(%tmp.elite.mp3.find.stereo-mono,$chr(32),$chr(40),$chr(41))
  226.       .timer 1 2 .msg $nick ! $+ $me $nopath(%tmp.elite.mp3.find.file) (size: %tmp.elite.mp3.find.size length: $strip(%tmp.elite.mp3.find.length) $strip(%tmp.elite.mp3.find.bitrate) $replace($strip(%tmp.elite.mp3.find.stereo-mono),stereo,Joint-Stereo) $+ )
  227.       if %tmp.elite.mp3.find.file.num > 1 { goto msg.loop }
  228.       :find.end
  229.       .timer 1 5 elite.mp3.unignore find $nick
  230.       unset %tmp.elite.mp3.find.*
  231.     }
  232.   }
  233. }
  234.  
  235. on *:TEXT:*.mp3*:*: {
  236.   if $1 == $chr(33) $+ $me {
  237.     if $elite.getsetting(Settings,AllowGrab) != $true {
  238.       .notice $nick [MP3 SEND DENIED] > My MP3 auto-send is currently offline.
  239.       echo $colour(info) -es Elite MP3: MP3 Send DENIED To $nick ( $+ $address $+ ) > MP3 auto-send is offline.
  240.     }
  241.     else {
  242.       set %tmp.elite.mp3.send.filename $left($2-,$calc($pos($2-,.mp3,1) + 4))
  243.       set %tmp.elite.mp3.send.file $elite.getsetting(Paths,Base) $+ $shortfn(%tmp.elite.mp3.send.filename)
  244.       set %tmp.elite.mp3.send.file $findfile($elite.getsetting(Paths,Base),%tmp.elite.mp3.send.filename,1)
  245.       if %tmp.elite.mp3.send.file == $null {
  246.         .notice $nick [MP3 SEND DENIED] > Unable to locate MP3: %tmp.elite.mp3.send.filename $+ .
  247.       }
  248.       elseif $elite.getsetting(Current,Sends) => $elite.getsetting(Settings,MaxSends) {
  249.         inc %tmp.elite.mp3.slot.num
  250.         set %tmp.elite.mp3.slot.type $right($send(%tmp.elite.mp3.slot.num).file,4)
  251.         if %tmp.elite.mp3.slot.type != .mp3 && %tmp.elite.mp3.slot.num < $send(0) { goto slot.loop }
  252.         .notice $nick All slots currently in use $chr(91) $+ $elite.getsetting(Current,Sends) $+ / $+ $elite.getsetting(Settings,MaxSends) $+ $chr(93) $+ . Estimated time till next open slot is $duration($calc(($send(%tmp.elite.mp3.slot.num).size - $send(%tmp.elite.mp3.slot.num).lra) / $send(%tmp.elite.mp3.slot.num).cps)) $+ .
  253.       }
  254.       else {
  255.         .notice $nick Preparing to send you %tmp.elite.mp3.send.filename $+ . Elite MP3 Player $elitesys.version
  256.         echo 4 -a * Elite MP3 Player: Sending %tmp.elite.mp3.send.filename to $nick $+ .
  257.         if $elite.getsetting(Settings,CancelDCC) == $true { .notice $nick The transfer will be cancelled if the transfer rate falls below $elite.getsetting(Settings,MinCPS) cps. }
  258.         dcc send $nick " $+ %tmp.elite.mp3.send.file $+ "
  259.         elite.setsetting Current Sends $calc($elite.getsetting(Current,Sends) + 1)
  260.         .timer 1 3 amsg [MP3 DCC STATUS] I have $elite.getsetting(Current,Sends) of $elite.getsetting(Settings,MaxSends) slots in use.  Type @ $+ $me $+ -stats for my current MP3 stats.
  261.         elite.mp3.check.cps
  262.         if $timer(EliteMP3CPS) == $null { .timerEliteMP3CPS 0 7 elite.mp3.check.cps }
  263.       }
  264.     }
  265.     unset %tmp.elite.mp3.send.*
  266.     unset %tmp.elite.mp3.slot.*
  267.   }
  268. }
  269.  
  270. on *:TEXT:@*-stats:*: {
  271.   if $1 == @ $+ $me $+ -stats {
  272.     .msg $nick [CURRENT MP3 STATS] I have $elite.getsetting(Current,Sends) of $elite.getsetting(Settings,MaxSends) slots in use. Type @ $+ $me $+ list for my compiled list of $findfile($elite.getsetting(Paths,Base),*.mp3,*) MP3s.
  273.     :stats.loop
  274.     inc %tmp.elite.mp3.stats.num
  275.     if $right($send(%tmp.elite.mp3.stats.num).file,4) == .mp3 {
  276.       .msg $nick MP3 DCC SEND] $send(%tmp.elite.mp3.stats.num) - $send(%tmp.elite.mp3.stats.num).file - $send(%tmp.elite.mp3.stats.num).pc $+ $chr(37) - $send(%tmp.elite.mp3.stats.num).cps $+ cps - State: $send(%tmp.elite.mp3.stats.num).status - Estimate Time Remaining: $duration($calc(($send(%tmp.elite.mp3.stats.num).size - $send(%tmp.elite.mp3.stats.num).lra) / $send(%tmp.elite.mp3.stats.num).cps)) $+ .
  277.     }
  278.     if %tmp.elite.mp3.stats.num < $send(0) { goto stats.loop }
  279.     .msg $nick [MP3 DCC HISTORY] $chr(91) $+ sent: $elite.getsetting(History,Sent) $+ $chr(93) $chr(91) $+ failed: $elite.getsetting(History,Failed) $+ $chr(93) $chr(91) $+ highest cps: $elite.getsetting(History,CPS) by $elite.getsetting(History,Nick) $+ $chr(93)
  280.     .msg $nick [MP3 DCC SWITCHES] $chr(91) $+ min. cps rate: $elite.getsetting(Settings,MinCPS) $+ $chr(93) $chr(91) $+ @find: $iif($elite.getsetting(Settings,@find) == $true, On, Off) $+ $chr(93) $chr(91) $+ max slots: $elite.getsetting(Settings,MaxSends) $+ $chr(93)
  281.   }
  282.   unset %tmp.elite.mp3.stats.*
  283. }
  284.  
  285. on *:FILESENT:*mp3.txt: { if $nopath($filename) == $me $+ mp3.txt { elite.mp3.sendnext } }
  286.  
  287. on *:SENDFAIL:*mp3.txt: { if $nopath($filename) == $me $+ mp3.txt { elite.mp3.sendnext } }
  288.  
  289. on *:FILESENT:*.mp3: {
  290.   .timer 1 3 amsg [MP3 DCC SEND COMPLETE] with $nick $+ . I have $!elite.getsetting(Current,Sends) of $!elite.getsetting(Settings,MaxSends) slots in use.  Type @ $+ $me $+ -stats for my current MP3 stats.
  291.   if $elite.getsetting(Current,Sends) > 0 { elite.setsetting Current Sends $calc($elite.getsetting(Current,Sends) - 1) }  
  292.   elite.setsetting History Sent $calc($elite.getsetting(History,Sent) + 1) | if $send($nick).cps > $elite.getsettting(History,CPS) { elite.setsetting History CPS $send($nick).cps }
  293. }
  294.  
  295. on *:SENDFAIL:*.mp3: {
  296.   .timer 1 3 amsg [MP3 DCC TIMED OUT] from $nick at $send($nick).pc $+ $chr(37) $+ . I have $!elite.getsetting(Current,Sends) of $!elite.getsetting(Settings,MaxSends) slots in use. Type @ $+ $me $+ -stats for my current MP3 stats.
  297.   if $elite.getsetting(Current,Sends) > 0 { elite.setsetting Current Sends $calc($elite.getsetting(Current,Sends) - 1) }  
  298.   elite.setsetting History Failed $calc($elite.getsetting(History,Failed) + 1)
  299. }
  300.  
  301. ctcp ^*:DCC SEND:{
  302.   if $elite.getsetting(Played,File) == $3 && $elite.getsetting(Played,Requested) == $true && $elite.getsetting(Settings,AutoAccept) == $true {
  303.     set %tmp.elite.mp3.dcc $sreq
  304.     .sreq +m auto
  305.     .timer 1 0 .sreq %tmp.elite.mp3.dcc
  306.     unset %tmp.elite.mp3.dcc
  307.     elite.setsetting Played Requested $false
  308.     haltdef
  309.   }
  310. }
  311.  
  312. ctcp ^*:MP3:{
  313.   if $elite.getsetting(Settings,Power) == On {
  314.     if $get(0) >= 1 {
  315.       :loop
  316.       inc %tmp.elite.mp3.get.var
  317.       if $get(%tmp.elite.mp3.get.var).file == $2- { goto downloading }
  318.       if $get(%tmp.elite.mp3.get.var) < $get(0) { goto loop }
  319.     }
  320.     set %elitesys.mp3.get.file $2-
  321.     set %elitesys.mp3.get.nick $nick
  322.     set %elitesys.mp3.get.chan $chan
  323.     if $elite.getsetting(Paths,Player) == $null { elite.mp3.getplay }
  324.     if $elite.getsetting(Paths,Player) == $null { halt }
  325.     set %tmp.elite.mp3.path $findfile($elite.getsetting(Paths,Base),%elitesys.mp3.get.file,1)
  326.     if %tmp.elite.mp3.path == $null {
  327.       elite.setsetting Played Channel $chan
  328.       elite.setsetting Played File $replace($2-,$chr(32),$chr(95))
  329.       elite.setsetting Played Nick $nick
  330.       elite.setsetting Played Requested $false
  331.       if $elite.getsetting(Settings,AutoGet) != $true {
  332.         alias $elite.getsetting(Settings,HotKey) elite.mp3.get
  333.         echo 4 -a * Elite MP3: Press $elite.getsetting(Settings,HotKey) to request $2- from $nick $+ .
  334.       }
  335.       else { elite.setsetting Played Requested $true | msg $chan ! $+ $nick $2- Elite MP3 $elitesys.version Auto-Grab }
  336.     }
  337.     else { run $elite.getsetting(Paths,Player) $shortfn(%tmp.elite.mp3.path) }
  338.   }
  339.   :downloading
  340.   unset %tmp.elite.mp3.*
  341.   echo 4 -s * Elite MP3: $nick playing $2- in $chan $+ .
  342.   haltdef
  343. }
  344.  
  345. ctcp ^*:VERSION: {
  346.   raw -q notice $nick : $+ $chr(1) $+ VERSION Elite MP3 $elitesys.version $+ . Copyright 1999 (c) Elite Scripters.  ALL RIGHTS RESERVED
  347. }
  348.  
  349. on *:START: {
  350.   if $version < 5.6 {
  351.     echo $colour(info) -es *** Elite MP3: This version ( $+ $strip($elite.version) $+ ) of Elite MP3 requires mIRC 5.6 or above.  You version is $version $+ . Please download the latest mIRC at http://www.mirc.com/.
  352.     .timer 1 0 .unload -rs $script | halt
  353.   }
  354.   if $script(elitemp3.mrc) == $null {
  355.     linesep
  356.     echo $colour(info) -s Elite MP3: You must load elitemp3.mrc FIRST.
  357.     echo $colour(info) -s Elite MP3: Type: //load -rs $scriptdir $+ elitemp3.mrc
  358.     echo $colour(info) -s Elite MP3: Now Unloading...
  359.     linesep
  360.     .timer 1 1 .unload -rs $script
  361.   }
  362.   elite.setsetting Current Sends 0
  363.   :send.loop
  364.   inc %tmp.elite.mp3.start.send.num
  365.   if $right($send(%tmp.elite.mp3.start.send.num).file,4) == .mp3 { elite.setsetting Current Sends $calc($elite.getsetting(Current,Sends) + 1) }
  366.   if %tmp.elite.mp3.start.send.num < $send(0) { goto send.loop }
  367.   unset %tmp.elite.mp3.start.*
  368.   unset %elite.mp3.ignore.*
  369. }
  370.  
  371. on *:CONNECT: { if $elite.getsetting(Settings,ListOffer) == On { elite.mp3.listoffer } | .rlevel EliteMP3Ignore | .rlevel EliteMP3IgnoreFind }
  372.  
  373. on *:DISCONNECT: { .timerEliteMP3ListOffer off }
  374.